From: Sebastian Keller Date: Wed, 13 Jan 2021 22:24:49 +0000 (+0100) Subject: workspacesView: Disable swipe tracker when animating from overview X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~616^2^2~577 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=c57a299d5705353c5b44567a3f508532a824902d;p=gnome-shell.git workspacesView: Disable swipe tracker when animating from overview It was possible to switch workspaces by quickly dragging the workspace immediately after clicking on a window during the transition from the overview. This is unlikely something that is intentionally used but can be confusing and look bad when triggered accidentally. Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2993 Part-of: --- diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index 70b4dd569..c57129e50 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -419,6 +419,7 @@ class WorkspacesDisplay extends St.Widget { this._actualGeometry = null; this._inWindowDrag = false; this._inWindowFade = false; + this._leavingOverview = false; this._gestureActive = false; // touch(pad) gestures this._canScroll = true; // limiting scrolling speed @@ -467,7 +468,10 @@ class WorkspacesDisplay extends St.Widget { } _updateSwipeTracker() { - this._swipeTracker.enabled = this.mapped && !this._inWindowDrag; + this._swipeTracker.enabled = + this.mapped && + !this._inWindowDrag && + !this._leavingOverview; } _workspacesReordered() { @@ -603,6 +607,9 @@ class WorkspacesDisplay extends St.Widget { this._inWindowFade = fadeOnPrimary; + this._leavingOverview = true; + this._updateSwipeTracker(); + const { primaryIndex } = Main.layoutManager; const { x, y, width, height } = Main.layoutManager.getWorkAreaForMonitor(primaryIndex); @@ -630,6 +637,8 @@ class WorkspacesDisplay extends St.Widget { this._workspacesViews[i].destroy(); this._workspacesViews = []; + this._leavingOverview = false; + super.vfunc_hide(); }